﻿#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <assert.h>
#include <stdbool.h>
// 原题连接：https://leetcode.cn/problems/search-a-2d-matrix-ii/
/*
题目描述：
编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性：

每行的元素从左到右升序排列。
每列的元素从上到下升序排列。
*/

// 方法1——老方法标记值移动
// 开始解题：
bool searchMatrix(int** matrix, int matrixSize, int* matrixColSize, int target) {
    assert(matrix && matrixColSize);
    int row = 0;
    int col = *matrixColSize - 1;
    int flag = 0;
    while (row < matrixSize && col >= 0) {
        flag = matrix[row][col];
        if (flag < target) {
            row++;
        }
        else if (flag > target) {
            col--;
        }
        else {
            return true;
        }
    }
    return false;
}